﻿namespace Sgr.Organizations
{
    /// <summary>
    /// 用户信息模型，扩展以支持跨平台映射与同步。
    /// </summary>
    public class UserInfo
    {
        /// <summary>
        /// 内部用户 Id（本地系统主键）
        /// </summary>
        public long UserId { get; set; }

        /// <summary>
        /// 真实姓名
        /// </summary>
        public string RealName { get; set; } = string.Empty;

        /// <summary>
        /// 邮箱，可为空
        /// </summary>
        public string? Email { get; set; }

        /// <summary>
        /// 手机号，可为空
        /// </summary>
        public string? Mobile { get; set; }

        /// <summary>
        /// 用户所属多个部门（钉钉/企微 场景常见）。
        /// 若系统仅支持单部门，可用第 0 项为主部门。
        /// </summary>
        public IReadOnlyList<string> DepartmentIds { get; set; } = Array.Empty<string>();

        /// <summary>
        /// 外部平台 Id（例如钉钉用户 id），可为空
        /// </summary>
        public string? ExternalId { get; set; }

        /// <summary>
        /// 数据来源（例如 "Local", "DingTalk", "WeCom", "Wps"）
        /// </summary>
        public string Source { get; set; } = "Local";

        /// <summary>
        /// 是否启用/有效（软删除/禁用用）
        /// </summary>
        public bool IsActive { get; set; } = true;

        /// <summary>
        /// 最后更新时间（来自源头）
        /// </summary>
        public DateTime? LastModified { get; set; }

        /// <summary>
        /// 平台特有扩展字段（只读字典）
        /// </summary>
        public IReadOnlyDictionary<string, string>? Metadata { get; set; }
    }
}